home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-03-27 | 2.7 KB | 85 lines | [TEXT/PJMM] |
- unit PreScan;
-
- interface
-
-
- uses
- Globals, NewFileUtils, HelloTabby;
-
- procedure PreScan (GenericPath, CapsFwdName, CapsFREQName: str255; var FixPending: boolean);
-
- implementation
-
- { ------------------------------------------------------ }
-
- procedure PreScan;
-
- var
- OneLine, TempString, VolName: STR255;
- GenImpRef, AreafixRef, Count, vRefNum: integer;
- logicalEOF, RecStart, PlaceMark: longint;
- MsgLine: array[1..7] of STR255;
- Err: OSErr;
- ValidMsg: boolean;
-
- begin
- Err := GetVol(@VolName, vRefNum); { Get volume ref # for default volume }
- RecStart := 0;
- Err := FSOpen(concat(GenericPath, 'Generic Import'), vRefNum, GenImpRef);
- if Err = NoErr then
- begin
- Err := GetEOF(GenImpRef, logicalEOF);
- if logicalEOF > 0 then
- while not AtEOF(GenImpRef) do
- begin
- ValidMsg := false;
- OneLine := '';
- for Count := 1 to 7 do
- if not AtEOF(GenImpRef) then
- Err := ReadALine(GenImpRef, MsgLine[Count]);
- if not AtEOF(GenImpRef) then
- begin
- TempString := MsgLine[7];
- UprString(TempString, false);
- if ((TempString = 'AREAFIX') | (TempString = 'AREATRIX')) then
- ValidMsg := true
- else if ((TempString = CapsFwdName) | (TempString = CapsFREQName)) then
- ValidMsg := true;
- if ValidMsg & (MsgLine[1][2] = 'M') & (MsgLine[1][1] <> 'D') then
- begin
- Err := GetFPos(GenImpRef, PlaceMark);
- Err := SetFPos(GenImpRef, fsFromStart, RecStart);
- OneLine := 'DM ';
- Err := MyWriteLine(GenImpRef, OneLine);
- Err := SetFPos(GenImpRef, fsFromStart, PlaceMark);
- MakeTextFile('AreaTrix.req');
- Err := FSOpen('AreaTrix.req', vRefNum, AreafixRef);
- Err := SetFPos(AreafixRef, fsFromLEOF, 0);
- for Count := 1 to 7 do
- Err := MyWriteLine(AreafixRef, MsgLine[Count]);
- while (not AtEOF(GenImpRef)) & (OneLine <> NULL) do
- begin
- Err := ReadALine(GenImpRef, OneLine);
- Err := MyWriteLine(AreafixRef, OneLine)
- end;
- Err := FSClose(AreafixRef);
- end
- else if not AtEOF(GenImpRef) then
- repeat
- Err := ReadALine(GenImpRef, OneLine)
- until (OneLine = NULL) | (AtEOF(GenImpRef));
- Err := GetFPos(GenImpRef, RecStart)
- end { while not AtEOF(GenImpRef) }
- end; { if not AtEOF(GenImpRef) }
- Err := FSClose(GenImpRef)
- end;
- Err := FSOpen('AreaTrix.req', vRefNum, AreafixRef);
- if Err = NoErr then
- begin
- Err := FSClose(AreafixRef);
- FixPending := true { This insures that we process left-over AreaFix reqs }
- end
- else
- FixPending := false
- end;
- end. { Unit }